home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / ELECTRIC / DSPICE0S.ZIP / acload.c < prev    next >
C/C++ Source or Header  |  1992-11-22  |  57KB  |  1,551 lines

  1. /* acload.f -- translated by f2c (version of 3 February 1990  3:36:42).
  2.    You must link the resulting object file with the libraries:
  3.     -lF77 -lI77 -lm -lc   (in that order)
  4. */
  5.  
  6. #include "f2c.h"
  7.  
  8. /* Common Block Declarations */
  9.  
  10. struct {
  11.     integer ielmnt, isbckt, nsbckt, iunsat, nunsat, itemps, numtem, isens, 
  12.         nsens, ifour, nfour, ifield, icode, idelim, icolum, insize, 
  13.         junode, lsbkpt, numbkp, iorder, jmnode, iur, iuc, ilc, ilr, 
  14.         numoff, isr, nmoffc, iseq, iseq1, neqn, nodevs, ndiag, iswap, 
  15.         iequa, macins, lvnim1, lx0, lvn, lynl, lyu, lyl, lx1, lx2, lx3, 
  16.         lx4, lx5, lx6, lx7, ld0, ld1, ltd, imynl, imvn, lcvn, nsnod, 
  17.         nsmat, nsval, icnod, icmat, icval, loutpt, lpol, lzer, irswpf, 
  18.         irswpr, icswpf, icswpr, irpt, jcpt, irowno, jcolno, nttbr, nttar, 
  19.         lvntmp;
  20. } tabinf_;
  21.  
  22. #define tabinf_1 tabinf_
  23.  
  24. struct {
  25.     integer locate[50], jelcnt[50], nunods, ncnods, numnod, nstop, nut, nlt, 
  26.         nxtrm, ndist, ntlin, ibr, numvs, numalt, numcyc;
  27. } cirdat_;
  28.  
  29. #define cirdat_1 cirdat_
  30.  
  31. struct {
  32.     doublereal omega, time, delta, delold[7], ag[7], vt, xni, egfet, xmu, 
  33.         sfactr;
  34.     integer mode, modedc, icalc, initf, method, iord, maxord, noncon, iterno, 
  35.         itemno, nosolv, modac, ipiv, ivmflg, ipostp, iscrch, iofile;
  36. } status_;
  37.  
  38. #define status_1 status_
  39.  
  40. struct {
  41.     doublereal fstart, fstop, fincr, skw2, refprl, spw2;
  42.     integer jacflg, idfreq, inoise, nosprt, nosout, nosin, idist, idprt;
  43. } ac_;
  44.  
  45. #define ac_1 ac_
  46.  
  47. struct {
  48.     doublereal value[200000];
  49. } blank_;
  50.  
  51. #define blank_1 blank_
  52.  
  53. /*<       subroutine acload >*/
  54. /* Subroutine */ int acload_()
  55. {
  56.     /* System generated locals */
  57.     integer i_1;
  58.  
  59.     /* Builtin functions */
  60.     double sin(), cos();
  61.  
  62.     /* Local variables */
  63.     static doublereal cggb, area, cbsb, cgsb, xcgb, xcgd;
  64.     static integer ndim;
  65.     static doublereal gmbs;
  66.     static integer locm;
  67.     static doublereal gcpr, gdpr;
  68.     static integer lmat, locv, loct, locy;
  69.     static doublereal xceq, gspr, gepr;
  70.     static integer iptr;
  71.     static doublereal xcpi, xcmu, xcbx, xccs, xnrm, xrev, xqco, xcgs, rval, 
  72.         xval;
  73.     static integer node1, node2;
  74.     extern /* Subroutine */ int zero8_();
  75.     static integer i;
  76.     static doublereal capbd, xcddb, xcbgb, xcdgb, capbs, xcmcb, xcggb, xcgdb, 
  77.         xcdsb, xcsdb, xcsgb, xcgsb, xcbdb, xcdxd, xcbsb, xcgxd;
  78.     static integer locyi, itype;
  79.     static doublereal xcgxs, xcdxs, xcsxd, xcssb, xcsxs, z0, y0, gm, go, td, 
  80.         gx, xl;
  81. #define nodplc ((integer *)&blank_1)
  82. #define cvalue ((complex *)&blank_1)
  83.     static doublereal devmod, xw, covlgs, covlgd, covlgb, gbd, gcd, gcg, ggd, 
  84.         arg, gbs;
  85.     static integer loc;
  86.     static doublereal geq, gpi, gds, val, ggs, xgd, gcs, gmu, xbd, xgm, xqc, 
  87.         xgs, xbs, cbdb, cbgb, cgdb;
  88.  
  89. /*<       implicit double precision (a-h,o-z) >*/
  90.  
  91. /*     this routine zeroes-out and then loads the complex coefficient */
  92. /*     matrix */
  93.  
  94. /* spice version 2g.6  sccsid=tabinf 3/15/83 */
  95. /*<       common /tabinf/ ielmnt,isbckt,nsbckt,iunsat,nunsat,itemps,numtem, >*/
  96. /*<      1   isens,nsens,ifour,nfour,ifield,icode,idelim,icolum,insize, >*/
  97. /*<      2   junode,lsbkpt,numbkp,iorder,jmnode,iur,iuc,ilc,ilr,numoff,isr, >*/
  98. /*<      3   nmoffc,iseq,iseq1,neqn,nodevs,ndiag,iswap,iequa,macins,lvnim1, >*/
  99. /*<      4   lx0,lvn,lynl,lyu,lyl,lx1,lx2,lx3,lx4,lx5,lx6,lx7,ld0,ld1,ltd, >*/
  100. /*<      5   imynl,imvn,lcvn,nsnod,nsmat,nsval,icnod,icmat,icval, >*/
  101. /*<      6   loutpt,lpol,lzer,irswpf,irswpr,icswpf,icswpr,irpt,jcpt, >*/
  102. /*<      7   irowno,jcolno,nttbr,nttar,lvntmp >*/
  103. /* spice version 2g.6  sccsid=cirdat 3/15/83 */
  104. /*<       common /cirdat/ locate(50),jelcnt(50),nunods,ncnods,numnod,nstop, >*/
  105. /*<      1   nut,nlt,nxtrm,ndist,ntlin,ibr,numvs,numalt,numcyc >*/
  106. /* spice version 2g.6  sccsid=status 3/15/83 */
  107. /*<       common /status/ omega,time,delta,delold(7),ag(7),vt,xni,egfet, >*/
  108. /*<      1   xmu,sfactr,mode,modedc,icalc,initf,method,iord,maxord,noncon, >*/
  109. /*<      2   iterno,itemno,nosolv,modac,ipiv,ivmflg,ipostp,iscrch,iofile >*/
  110. /* spice version 2g.6  sccsid=ac 3/15/83 */
  111. /*<       common /ac/ fstart,fstop,fincr,skw2,refprl,spw2,jacflg,idfreq, >*/
  112. /*<      1   inoise,nosprt,nosout,nosin,idist,idprt >*/
  113. /* spice version 2g.6  sccsid=blank 3/15/83 */
  114. /*<       common /blank/ value(200000) >*/
  115. /*<       integer nodplc(64) >*/
  116. /*<       complex cvalue(32) >*/
  117. /*<       equivalence (value(1),nodplc(1),cvalue(1)) >*/
  118.  
  119.  
  120. /*<       complex cval >*/
  121.  
  122. /*  zero y matrix and current vector */
  123.  
  124. /*<       call zero8(value(lvn+1),nstop+nttbr) >*/
  125.     i_1 = cirdat_1.nstop + tabinf_1.nttbr;
  126.     zero8_(&blank_1.value[tabinf_1.lvn], &i_1);
  127. /*<       call zero8(value(imvn+1),nstop+nttbr) >*/
  128.     i_1 = cirdat_1.nstop + tabinf_1.nttbr;
  129.     zero8_(&blank_1.value[tabinf_1.imvn], &i_1);
  130.  
  131. /*  resistors */
  132.  
  133. /*<       loc=locate(1) >*/
  134.     loc = cirdat_1.locate[0];
  135. /*<    20 if ((loc.eq.0).or.(nodplc(loc+8).ne.0)) go to 30 >*/
  136. L20:
  137.     if (loc == 0 || nodplc[loc + 7] != 0) {
  138.     goto L30;
  139.     }
  140. /*<       locv=nodplc(loc+1) >*/
  141.     locv = nodplc[loc];
  142. /*<       val=value(locv+1) >*/
  143.     val = blank_1.value[locv];
  144. /*<       locy=lynl+nodplc(loc+6) >*/
  145.     locy = tabinf_1.lynl + nodplc[loc + 5];
  146. /*<       value(locy)=value(locy)+val >*/
  147.     blank_1.value[locy - 1] += val;
  148. /*<       locy=lynl+nodplc(loc+7) >*/
  149.     locy = tabinf_1.lynl + nodplc[loc + 6];
  150. /*<       value(locy)=value(locy)+val >*/
  151.     blank_1.value[locy - 1] += val;
  152. /*<       locy=lynl+nodplc(loc+4) >*/
  153.     locy = tabinf_1.lynl + nodplc[loc + 3];
  154. /*<       value(locy)=value(locy)-val >*/
  155.     blank_1.value[locy - 1] -= val;
  156. /*<       locy=lynl+nodplc(loc+5) >*/
  157.     locy = tabinf_1.lynl + nodplc[loc + 4];
  158. /*<       value(locy)=value(locy)-val >*/
  159.     blank_1.value[locy - 1] -= val;
  160. /*<       loc=nodplc(loc) >*/
  161.     loc = nodplc[loc - 1];
  162. /*<       go to 20 >*/
  163.     goto L20;
  164.  
  165. /*  capacitors */
  166.  
  167. /*<    30 loc=locate(2) >*/
  168. L30:
  169.     loc = cirdat_1.locate[1];
  170. /*<    40 if ((loc.eq.0).or.(nodplc(loc+12).ne.0)) go to 50 >*/
  171. L40:
  172.     if (loc == 0 || nodplc[loc + 11] != 0) {
  173.     goto L50;
  174.     }
  175. /*<       locv=nodplc(loc+1) >*/
  176.     locv = nodplc[loc];
  177. /*<       val=omega*value(locv+1) >*/
  178.     val = status_1.omega * blank_1.value[locv];
  179. /*<       locyi=imynl+nodplc(loc+10) >*/
  180.     locyi = tabinf_1.imynl + nodplc[loc + 9];
  181. /*<       value(locyi)=value(locyi)+val >*/
  182.     blank_1.value[locyi - 1] += val;
  183. /*<       locyi=imynl+nodplc(loc+11) >*/
  184.     locyi = tabinf_1.imynl + nodplc[loc + 10];
  185. /*<       value(locyi)=value(locyi)+val >*/
  186.     blank_1.value[locyi - 1] += val;
  187. /*<       locyi=imynl+nodplc(loc+5) >*/
  188.     locyi = tabinf_1.imynl + nodplc[loc + 4];
  189. /*<       value(locyi)=value(locyi)-val >*/
  190.     blank_1.value[locyi - 1] -= val;
  191. /*<       locyi=imynl+nodplc(loc+6) >*/
  192.     locyi = tabinf_1.imynl + nodplc[loc + 5];
  193. /*<       value(locyi)=value(locyi)-val >*/
  194.     blank_1.value[locyi - 1] -= val;
  195. /*<       loc=nodplc(loc) >*/
  196.     loc = nodplc[loc - 1];
  197. /*<       go to 40 >*/
  198.     goto L40;
  199.  
  200. /*  inductors */
  201.  
  202. /*<    50 loc=locate(3) >*/
  203. L50:
  204.     loc = cirdat_1.locate[2];
  205. /*<    60 if ((loc.eq.0).or.(nodplc(loc+14).ne.0)) go to 70 >*/
  206. L60:
  207.     if (loc == 0 || nodplc[loc + 13] != 0) {
  208.     goto L70;
  209.     }
  210. /*<       locv=nodplc(loc+1) >*/
  211.     locv = nodplc[loc];
  212. /*<       val=omega*value(locv+1) >*/
  213.     val = status_1.omega * blank_1.value[locv];
  214. /*<       locyi=imynl+nodplc(loc+13) >*/
  215.     locyi = tabinf_1.imynl + nodplc[loc + 12];
  216. /*<       locy=lynl+nodplc(loc+13) >*/
  217.     locy = tabinf_1.lynl + nodplc[loc + 12];
  218. /*<       value(locy)=0.0d0 >*/
  219.     blank_1.value[locy - 1] = 0.;
  220. /*<       value(locyi)=-val >*/
  221.     blank_1.value[locyi - 1] = -val;
  222. /*<       locy=lynl+nodplc(loc+6) >*/
  223.     locy = tabinf_1.lynl + nodplc[loc + 5];
  224. /*<       locyi=imynl+nodplc(loc+6) >*/
  225.     locyi = tabinf_1.imynl + nodplc[loc + 5];
  226. /*<       value(locy)=1.0d0 >*/
  227.     blank_1.value[locy - 1] = 1.;
  228. /*<       value(locyi)=0.0d0 >*/
  229.     blank_1.value[locyi - 1] = 0.;
  230. /*<       locy=lynl+nodplc(loc+7) >*/
  231.     locy = tabinf_1.lynl + nodplc[loc + 6];
  232. /*<       locyi=imynl+nodplc(loc+7) >*/
  233.     locyi = tabinf_1.imynl + nodplc[loc + 6];
  234. /*<       value(locy)=-1.0d0 >*/
  235.     blank_1.value[locy - 1] = -1.;
  236. /*<       value(locyi)=0.0d0 >*/
  237.     blank_1.value[locyi - 1] = 0.;
  238. /*<       locy=lynl+nodplc(loc+8) >*/
  239.     locy = tabinf_1.lynl + nodplc[loc + 7];
  240. /*<       locyi=imynl+nodplc(loc+8) >*/
  241.     locyi = tabinf_1.imynl + nodplc[loc + 7];
  242. /*<       value(locy)=1.0d0 >*/
  243.     blank_1.value[locy - 1] = 1.;
  244. /*<       value(locyi)=0.0d0 >*/
  245.     blank_1.value[locyi - 1] = 0.;
  246. /*<       locy=lynl+nodplc(loc+9) >*/
  247.     locy = tabinf_1.lynl + nodplc[loc + 8];
  248. /*<       locyi=imynl+nodplc(loc+9) >*/
  249.     locyi = tabinf_1.imynl + nodplc[loc + 8];
  250. /*<       value(locy)=-1.0d0 >*/
  251.     blank_1.value[locy - 1] = -1.;
  252. /*<       value(locyi)=0.0d0 >*/
  253.     blank_1.value[locyi - 1] = 0.;
  254. /*<       loc=nodplc(loc) >*/
  255.     loc = nodplc[loc - 1];
  256. /*<       go to 60 >*/
  257.     goto L60;
  258.  
  259. /*  mutual inductors */
  260.  
  261. /*<    70 loc=locate(4) >*/
  262. L70:
  263.     loc = cirdat_1.locate[3];
  264. /*<    80 if ((loc.eq.0).or.(nodplc(loc+6).ne.0)) go to 90 >*/
  265. L80:
  266.     if (loc == 0 || nodplc[loc + 5] != 0) {
  267.     goto L90;
  268.     }
  269. /*<       locv=nodplc(loc+1) >*/
  270.     locv = nodplc[loc];
  271. /*<       val=omega*value(locv+1) >*/
  272.     val = status_1.omega * blank_1.value[locv];
  273. /*<       locy=lynl+nodplc(loc+4) >*/
  274.     locy = tabinf_1.lynl + nodplc[loc + 3];
  275. /*<       locyi=imynl+nodplc(loc+4) >*/
  276.     locyi = tabinf_1.imynl + nodplc[loc + 3];
  277. /*<       value(locy)=0.0d0 >*/
  278.     blank_1.value[locy - 1] = 0.;
  279. /*<       value(locyi)=-val >*/
  280.     blank_1.value[locyi - 1] = -val;
  281. /*<       locy=lynl+nodplc(loc+5) >*/
  282.     locy = tabinf_1.lynl + nodplc[loc + 4];
  283. /*<       locyi=imynl+nodplc(loc+5) >*/
  284.     locyi = tabinf_1.imynl + nodplc[loc + 4];
  285. /*<       value(locy)=0.0d0 >*/
  286.     blank_1.value[locy - 1] = 0.;
  287. /*<       value(locyi)=-val >*/
  288.     blank_1.value[locyi - 1] = -val;
  289. /*<       loc=nodplc(loc) >*/
  290.     loc = nodplc[loc - 1];
  291. /*<       go to 80 >*/
  292.     goto L80;
  293.  
  294. /*  nonlinear voltage controlled current sources */
  295.  
  296. /*<    90 loc=locate(5) >*/
  297. L90:
  298.     loc = cirdat_1.locate[4];
  299. /*<    95 if ((loc.eq.0).or.(nodplc(loc+13).ne.0)) go to 100 >*/
  300. L95:
  301.     if (loc == 0 || nodplc[loc + 12] != 0) {
  302.     goto L100;
  303.     }
  304. /*<       ndim=nodplc(loc+4) >*/
  305.     ndim = nodplc[loc + 3];
  306. /*<       lmat=nodplc(loc+7) >*/
  307.     lmat = nodplc[loc + 6];
  308. /*<       loct=lx0+nodplc(loc+12)+2 >*/
  309.     loct = tabinf_1.lx0 + nodplc[loc + 11] + 2;
  310. /*<       do 97 i=1,ndim >*/
  311.     i_1 = ndim;
  312.     for (i = 1; i <= i_1; ++i) {
  313. /*<       val=value(loct) >*/
  314.     val = blank_1.value[loct - 1];
  315. /*<       loct=loct+2 >*/
  316.     loct += 2;
  317. /*<       locy=lynl+nodplc(lmat+1) >*/
  318.     locy = tabinf_1.lynl + nodplc[lmat];
  319. /*<       value(locy)=value(locy)+val >*/
  320.     blank_1.value[locy - 1] += val;
  321. /*<       locy=lynl+nodplc(lmat+2) >*/
  322.     locy = tabinf_1.lynl + nodplc[lmat + 1];
  323. /*<       value(locy)=value(locy)-val >*/
  324.     blank_1.value[locy - 1] -= val;
  325. /*<       locy=lynl+nodplc(lmat+3) >*/
  326.     locy = tabinf_1.lynl + nodplc[lmat + 2];
  327. /*<       value(locy)=value(locy)-val >*/
  328.     blank_1.value[locy - 1] -= val;
  329. /*<       locy=lynl+nodplc(lmat+4) >*/
  330.     locy = tabinf_1.lynl + nodplc[lmat + 3];
  331. /*<       value(locy)=value(locy)+val >*/
  332.     blank_1.value[locy - 1] += val;
  333. /*<       lmat=lmat+4 >*/
  334.     lmat += 4;
  335. /*<    97 continue >*/
  336. /* L97: */
  337.     }
  338. /*<       loc=nodplc(loc) >*/
  339.     loc = nodplc[loc - 1];
  340. /*<       go to 95 >*/
  341.     goto L95;
  342.  
  343. /*  nonlinear voltage controlled voltage sources */
  344.  
  345. /*<   100 loc=locate(6) >*/
  346. L100:
  347.     loc = cirdat_1.locate[5];
  348. /*<   105 if ((loc.eq.0).or.(nodplc(loc+14).ne.0)) go to 110 >*/
  349. L105:
  350.     if (loc == 0 || nodplc[loc + 13] != 0) {
  351.     goto L110;
  352.     }
  353. /*<       ndim=nodplc(loc+4) >*/
  354.     ndim = nodplc[loc + 3];
  355. /*<       lmat=nodplc(loc+8) >*/
  356.     lmat = nodplc[loc + 7];
  357. /*<       loct=lx0+nodplc(loc+13)+3 >*/
  358.     loct = tabinf_1.lx0 + nodplc[loc + 12] + 3;
  359. /*<       locy=lynl+nodplc(lmat+1) >*/
  360.     locy = tabinf_1.lynl + nodplc[lmat];
  361. /*<       locyi=imynl+nodplc(lmat+1) >*/
  362.     locyi = tabinf_1.imynl + nodplc[lmat];
  363. /*<       value(locy)=+1.0d0 >*/
  364.     blank_1.value[locy - 1] = 1.;
  365. /*<       value(locyi)=0.0d0 >*/
  366.     blank_1.value[locyi - 1] = 0.;
  367. /*<       locy=lynl+nodplc(lmat+2) >*/
  368.     locy = tabinf_1.lynl + nodplc[lmat + 1];
  369. /*<       locyi=imynl+nodplc(lmat+2) >*/
  370.     locyi = tabinf_1.imynl + nodplc[lmat + 1];
  371. /*<       value(locy)=-1.0d0 >*/
  372.     blank_1.value[locy - 1] = -1.;
  373. /*<       value(locyi)=0.0d0 >*/
  374.     blank_1.value[locyi - 1] = 0.;
  375. /*<       locy=lynl+nodplc(lmat+3) >*/
  376.     locy = tabinf_1.lynl + nodplc[lmat + 2];
  377. /*<       locyi=imynl+nodplc(lmat+3) >*/
  378.     locyi = tabinf_1.imynl + nodplc[lmat + 2];
  379. /*<       value(locy)=+1.0d0 >*/
  380.     blank_1.value[locy - 1] = 1.;
  381. /*<       value(locyi)=0.0d0 >*/
  382.     blank_1.value[locyi - 1] = 0.;
  383. /*<       locy=lynl+nodplc(lmat+4) >*/
  384.     locy = tabinf_1.lynl + nodplc[lmat + 3];
  385. /*<       locyi=imynl+nodplc(lmat+4) >*/
  386.     locyi = tabinf_1.imynl + nodplc[lmat + 3];
  387. /*<       value(locy)=-1.0d0 >*/
  388.     blank_1.value[locy - 1] = -1.;
  389. /*<       value(locyi)=0.0d0 >*/
  390.     blank_1.value[locyi - 1] = 0.;
  391. /*<       lmat=lmat+4 >*/
  392.     lmat += 4;
  393. /*<       do 107 i=1,ndim >*/
  394.     i_1 = ndim;
  395.     for (i = 1; i <= i_1; ++i) {
  396. /*<       val=value(loct) >*/
  397.     val = blank_1.value[loct - 1];
  398. /*<       loct=loct+2 >*/
  399.     loct += 2;
  400. /*<       locy=lynl+nodplc(lmat+1) >*/
  401.     locy = tabinf_1.lynl + nodplc[lmat];
  402. /*<       value(locy)=value(locy)-val >*/
  403.     blank_1.value[locy - 1] -= val;
  404. /*<       locy=lynl+nodplc(lmat+2) >*/
  405.     locy = tabinf_1.lynl + nodplc[lmat + 1];
  406. /*<       value(locy)=value(locy)+val >*/
  407.     blank_1.value[locy - 1] += val;
  408. /*<       lmat=lmat+2 >*/
  409.     lmat += 2;
  410. /*<   107 continue >*/
  411. /* L107: */
  412.     }
  413. /*<       loc=nodplc(loc) >*/
  414.     loc = nodplc[loc - 1];
  415. /*<       go to 105 >*/
  416.     goto L105;
  417.  
  418. /*  nonlinear current controlled current sources */
  419.  
  420. /*<   110 loc=locate(7) >*/
  421. L110:
  422.     loc = cirdat_1.locate[6];
  423. /*<   115 if ((loc.eq.0).or.(nodplc(loc+13).ne.0)) go to 120 >*/
  424. L115:
  425.     if (loc == 0 || nodplc[loc + 12] != 0) {
  426.     goto L120;
  427.     }
  428. /*<       ndim=nodplc(loc+4) >*/
  429.     ndim = nodplc[loc + 3];
  430. /*<       lmat=nodplc(loc+7) >*/
  431.     lmat = nodplc[loc + 6];
  432. /*<       loct=lx0+nodplc(loc+12)+2 >*/
  433.     loct = tabinf_1.lx0 + nodplc[loc + 11] + 2;
  434. /*<       do 117 i=1,ndim >*/
  435.     i_1 = ndim;
  436.     for (i = 1; i <= i_1; ++i) {
  437. /*<       val=value(loct) >*/
  438.     val = blank_1.value[loct - 1];
  439. /*<       loct=loct+2 >*/
  440.     loct += 2;
  441. /*<       locy=lynl+nodplc(lmat+1) >*/
  442.     locy = tabinf_1.lynl + nodplc[lmat];
  443. /*<       locyi=imynl+nodplc(lmat+1) >*/
  444.     locyi = tabinf_1.imynl + nodplc[lmat];
  445. /*<       value(locy)=+val >*/
  446.     blank_1.value[locy - 1] = val;
  447. /*<       value(locyi)=0.0d0 >*/
  448.     blank_1.value[locyi - 1] = 0.;
  449. /*<       locy=lynl+nodplc(lmat+2) >*/
  450.     locy = tabinf_1.lynl + nodplc[lmat + 1];
  451. /*<       locyi=imynl+nodplc(lmat+2) >*/
  452.     locyi = tabinf_1.imynl + nodplc[lmat + 1];
  453. /*<       value(locy)=-val >*/
  454.     blank_1.value[locy - 1] = -val;
  455. /*<       value(locyi)=0.0d0 >*/
  456.     blank_1.value[locyi - 1] = 0.;
  457. /*<       lmat=lmat+2 >*/
  458.     lmat += 2;
  459. /*<   117 continue >*/
  460. /* L117: */
  461.     }
  462. /*<       loc=nodplc(loc) >*/
  463.     loc = nodplc[loc - 1];
  464. /*<       go to 115 >*/
  465.     goto L115;
  466.  
  467. /*  nonlinear current controlled voltage sources */
  468.  
  469. /*<   120 loc=locate(8) >*/
  470. L120:
  471.     loc = cirdat_1.locate[7];
  472. /*<   125 if ((loc.eq.0).or.(nodplc(loc+14).ne.0)) go to 140 >*/
  473. L125:
  474.     if (loc == 0 || nodplc[loc + 13] != 0) {
  475.     goto L140;
  476.     }
  477. /*<       ndim=nodplc(loc+4) >*/
  478.     ndim = nodplc[loc + 3];
  479. /*<       lmat=nodplc(loc+8) >*/
  480.     lmat = nodplc[loc + 7];
  481. /*<       loct=lx0+nodplc(loc+13)+3 >*/
  482.     loct = tabinf_1.lx0 + nodplc[loc + 12] + 3;
  483. /*<       locy=lynl+nodplc(lmat+1) >*/
  484.     locy = tabinf_1.lynl + nodplc[lmat];
  485. /*<       locyi=imynl+nodplc(lmat+1) >*/
  486.     locyi = tabinf_1.imynl + nodplc[lmat];
  487. /*<       value(locy)=+1.0d0 >*/
  488.     blank_1.value[locy - 1] = 1.;
  489. /*<       value(locyi)=0.0d0 >*/
  490.     blank_1.value[locyi - 1] = 0.;
  491. /*<       locy=lynl+nodplc(lmat+2) >*/
  492.     locy = tabinf_1.lynl + nodplc[lmat + 1];
  493. /*<       locyi=imynl+nodplc(lmat+2) >*/
  494.     locyi = tabinf_1.imynl + nodplc[lmat + 1];
  495. /*<       value(locy)=-1.0d0 >*/
  496.     blank_1.value[locy - 1] = -1.;
  497. /*<       value(locyi)=0.0d0 >*/
  498.     blank_1.value[locyi - 1] = 0.;
  499. /*<       locy=lynl+nodplc(lmat+3) >*/
  500.     locy = tabinf_1.lynl + nodplc[lmat + 2];
  501. /*<       locyi=imynl+nodplc(lmat+3) >*/
  502.     locyi = tabinf_1.imynl + nodplc[lmat + 2];
  503. /*<       value(locy)=+1.0d0 >*/
  504.     blank_1.value[locy - 1] = 1.;
  505. /*<       value(locyi)=0.0d0 >*/
  506.     blank_1.value[locyi - 1] = 0.;
  507. /*<       locy=lynl+nodplc(lmat+4) >*/
  508.     locy = tabinf_1.lynl + nodplc[lmat + 3];
  509. /*<       locyi=imynl+nodplc(lmat+4) >*/
  510.     locyi = tabinf_1.imynl + nodplc[lmat + 3];
  511. /*<       value(locy)=-1.0d0 >*/
  512.     blank_1.value[locy - 1] = -1.;
  513. /*<       value(locyi)=0.0d0 >*/
  514.     blank_1.value[locyi - 1] = 0.;
  515. /*<       lmat=lmat+4 >*/
  516.     lmat += 4;
  517. /*<       do 127 i=1,ndim >*/
  518.     i_1 = ndim;
  519.     for (i = 1; i <= i_1; ++i) {
  520. /*<       val=value(loct) >*/
  521.     val = blank_1.value[loct - 1];
  522. /*<       loct=loct+2 >*/
  523.     loct += 2;
  524. /*<       locy=lynl+nodplc(lmat+i) >*/
  525.     locy = tabinf_1.lynl + nodplc[lmat + i - 1];
  526. /*<       value(locy)=value(locy)-val >*/
  527.     blank_1.value[locy - 1] -= val;
  528. /*<   127 continue >*/
  529. /* L127: */
  530.     }
  531. /*<       loc=nodplc(loc) >*/
  532.     loc = nodplc[loc - 1];
  533. /*<       go to 125 >*/
  534.     goto L125;
  535.  
  536. /*  voltage sources */
  537.  
  538. /*<   140 loc=locate(9) >*/
  539. L140:
  540.     loc = cirdat_1.locate[8];
  541. /*<   150 if ((loc.eq.0).or.(nodplc(loc+11).ne.0)) go to 160 >*/
  542. L150:
  543.     if (loc == 0 || nodplc[loc + 10] != 0) {
  544.     goto L160;
  545.     }
  546. /*<       locv=nodplc(loc+1) >*/
  547.     locv = nodplc[loc];
  548. /*<       iptr=nodplc(loc+6) >*/
  549.     iptr = nodplc[loc + 5];
  550. /*<       value(lvn+iptr)=value(locv+2) >*/
  551.     blank_1.value[tabinf_1.lvn + iptr - 1] = blank_1.value[locv + 1];
  552. /*<       value(imvn+iptr)=value(locv+3) >*/
  553.     blank_1.value[tabinf_1.imvn + iptr - 1] = blank_1.value[locv + 2];
  554. /*<       locy=lynl+nodplc(loc+7) >*/
  555.     locy = tabinf_1.lynl + nodplc[loc + 6];
  556. /*<       value(locy)=value(locy)+1.0d0 >*/
  557.     blank_1.value[locy - 1] += 1.;
  558. /*<       locy=lynl+nodplc(loc+8) >*/
  559.     locy = tabinf_1.lynl + nodplc[loc + 7];
  560. /*<       value(locy)=value(locy)-1.0d0 >*/
  561.     blank_1.value[locy - 1] += -1.;
  562. /*<       locy=lynl+nodplc(loc+9) >*/
  563.     locy = tabinf_1.lynl + nodplc[loc + 8];
  564. /*<       value(locy)=value(locy)+1.0d0 >*/
  565.     blank_1.value[locy - 1] += 1.;
  566. /*<       locy=lynl+nodplc(loc+10) >*/
  567.     locy = tabinf_1.lynl + nodplc[loc + 9];
  568. /*<       value(locy)=value(locy)-1.0d0 >*/
  569.     blank_1.value[locy - 1] += -1.;
  570. /*<       loc=nodplc(loc) >*/
  571.     loc = nodplc[loc - 1];
  572. /*<       go to 150 >*/
  573.     goto L150;
  574.  
  575. /*  current sources */
  576.  
  577. /*<   160 loc=locate(10) >*/
  578. L160:
  579.     loc = cirdat_1.locate[9];
  580. /*<   170 if ((loc.eq.0).or.(nodplc(loc+6).ne.0)) go to 200 >*/
  581. L170:
  582.     if (loc == 0 || nodplc[loc + 5] != 0) {
  583.     goto L200;
  584.     }
  585. /*<       locv=nodplc(loc+1) >*/
  586.     locv = nodplc[loc];
  587. /*<       node1=nodplc(loc+2) >*/
  588.     node1 = nodplc[loc + 1];
  589. /*<       node2=nodplc(loc+3) >*/
  590.     node2 = nodplc[loc + 2];
  591. /*<       value(lvn+node1)=value(lvn+node1)-value(locv+2) >*/
  592.     blank_1.value[tabinf_1.lvn + node1 - 1] -= blank_1.value[locv + 1];
  593. /*<       value(imvn+node1)=value(imvn+node1)-value(locv+3) >*/
  594.     blank_1.value[tabinf_1.imvn + node1 - 1] -= blank_1.value[locv + 2];
  595. /*<       value(lvn+node2)=value(lvn+node2)+value(locv+2) >*/
  596.     blank_1.value[tabinf_1.lvn + node2 - 1] += blank_1.value[locv + 1];
  597. /*<       value(imvn+node2)=value(imvn+node2)+value(locv+3) >*/
  598.     blank_1.value[tabinf_1.imvn + node2 - 1] += blank_1.value[locv + 2];
  599. /*<       loc=nodplc(loc) >*/
  600.     loc = nodplc[loc - 1];
  601. /*<       go to 170 >*/
  602.     goto L170;
  603.  
  604. /*  diodes */
  605.  
  606. /*<   200 loc=locate(11) >*/
  607. L200:
  608.     loc = cirdat_1.locate[10];
  609. /*<   210 if ((loc.eq.0).or.(nodplc(loc+16).ne.0)) go to 250 >*/
  610. L210:
  611.     if (loc == 0 || nodplc[loc + 15] != 0) {
  612.     goto L250;
  613.     }
  614. /*<       locv=nodplc(loc+1) >*/
  615.     locv = nodplc[loc];
  616. /*<       area=value(locv+1) >*/
  617.     area = blank_1.value[locv];
  618. /*<       locm=nodplc(loc+5) >*/
  619.     locm = nodplc[loc + 4];
  620. /*<       locm=nodplc(locm+1) >*/
  621.     locm = nodplc[locm];
  622. /*<       loct=lx0+nodplc(loc+11) >*/
  623.     loct = tabinf_1.lx0 + nodplc[loc + 10];
  624. /*<       gspr=value(locm+2)*area >*/
  625.     gspr = blank_1.value[locm + 1] * area;
  626. /*<       geq=value(loct+2) >*/
  627.     geq = blank_1.value[loct + 1];
  628. /*<       xceq=value(loct+4)*omega >*/
  629.     xceq = blank_1.value[loct + 3] * status_1.omega;
  630. /*<       locy=lynl+nodplc(loc+13) >*/
  631.     locy = tabinf_1.lynl + nodplc[loc + 12];
  632. /*<       value(locy)=value(locy)+gspr >*/
  633.     blank_1.value[locy - 1] += gspr;
  634. /*<       locy=lynl+nodplc(loc+14) >*/
  635.     locy = tabinf_1.lynl + nodplc[loc + 13];
  636. /*<       locyi=imynl+nodplc(loc+14) >*/
  637.     locyi = tabinf_1.imynl + nodplc[loc + 13];
  638. /*<       value(locy)=value(locy)+geq >*/
  639.     blank_1.value[locy - 1] += geq;
  640. /*<       value(locyi)=value(locyi)+xceq >*/
  641.     blank_1.value[locyi - 1] += xceq;
  642. /*<       locy=lynl+nodplc(loc+15) >*/
  643.     locy = tabinf_1.lynl + nodplc[loc + 14];
  644. /*<       locyi=imynl+nodplc(loc+15) >*/
  645.     locyi = tabinf_1.imynl + nodplc[loc + 14];
  646. /*<       value(locy)=value(locy)+geq+gspr >*/
  647.     blank_1.value[locy - 1] = blank_1.value[locy - 1] + geq + gspr;
  648. /*<       value(locyi)=value(locyi)+xceq >*/
  649.     blank_1.value[locyi - 1] += xceq;
  650. /*<       locy=lynl+nodplc(loc+7) >*/
  651.     locy = tabinf_1.lynl + nodplc[loc + 6];
  652. /*<       value(locy)=value(locy)-gspr >*/
  653.     blank_1.value[locy - 1] -= gspr;
  654. /*<       locy=lynl+nodplc(loc+8) >*/
  655.     locy = tabinf_1.lynl + nodplc[loc + 7];
  656. /*<       locyi=imynl+nodplc(loc+8) >*/
  657.     locyi = tabinf_1.imynl + nodplc[loc + 7];
  658. /*<       value(locy)=value(locy)-geq >*/
  659.     blank_1.value[locy - 1] -= geq;
  660. /*<       value(locyi)=value(locyi)-xceq >*/
  661.     blank_1.value[locyi - 1] -= xceq;
  662. /*<       locy=lynl+nodplc(loc+9) >*/
  663.     locy = tabinf_1.lynl + nodplc[loc + 8];
  664. /*<       value(locy)=value(locy)-gspr >*/
  665.     blank_1.value[locy - 1] -= gspr;
  666. /*<       locy=lynl+nodplc(loc+10) >*/
  667.     locy = tabinf_1.lynl + nodplc[loc + 9];
  668. /*<       locyi=imynl+nodplc(loc+10) >*/
  669.     locyi = tabinf_1.imynl + nodplc[loc + 9];
  670. /*<       value(locy)=value(locy)-geq >*/
  671.     blank_1.value[locy - 1] -= geq;
  672. /*<       value(locyi)=value(locyi)-xceq >*/
  673.     blank_1.value[locyi - 1] -= xceq;
  674. /*<       loc=nodplc(loc) >*/
  675.     loc = nodplc[loc - 1];
  676. /*<       go to 210 >*/
  677.     goto L210;
  678.  
  679. /*  bjts */
  680.  
  681. /*<   250 loc=locate(12) >*/
  682. L250:
  683.     loc = cirdat_1.locate[11];
  684. /*<   260 if ((loc.eq.0).or.(nodplc(loc+36).ne.0)) go to 300 >*/
  685. L260:
  686.     if (loc == 0 || nodplc[loc + 35] != 0) {
  687.     goto L300;
  688.     }
  689. /*<       locv=nodplc(loc+1) >*/
  690.     locv = nodplc[loc];
  691. /*<       area=value(locv+1) >*/
  692.     area = blank_1.value[locv];
  693. /*<       locm=nodplc(loc+8) >*/
  694.     locm = nodplc[loc + 7];
  695. /*<       locm=nodplc(locm+1) >*/
  696.     locm = nodplc[locm];
  697. /*<       loct=lx0+nodplc(loc+22) >*/
  698.     loct = tabinf_1.lx0 + nodplc[loc + 21];
  699. /*<       gcpr=value(locm+20)*area >*/
  700.     gcpr = blank_1.value[locm + 19] * area;
  701. /*<       gepr=value(locm+19)*area >*/
  702.     gepr = blank_1.value[locm + 18] * area;
  703. /*<       gpi=value(loct+4) >*/
  704.     gpi = blank_1.value[loct + 3];
  705. /*<       gmu=value(loct+5) >*/
  706.     gmu = blank_1.value[loct + 4];
  707. /*<       gm=value(loct+6) >*/
  708.     gm = blank_1.value[loct + 5];
  709. /*<       go=value(loct+7) >*/
  710.     go = blank_1.value[loct + 6];
  711. /*<       xgm=0.0d0 >*/
  712.     xgm = 0.;
  713. /*<       td=value(locm+28) >*/
  714.     td = blank_1.value[locm + 27];
  715. /*<       if(td.eq.0.0d0) go to 270 >*/
  716.     if (td == 0.) {
  717.     goto L270;
  718.     }
  719. /*<       arg=td*omega >*/
  720.     arg = td * status_1.omega;
  721. /*<       gm=gm+go >*/
  722.     gm += go;
  723. /*<       xgm=-gm*dsin(arg) >*/
  724.     xgm = -gm * sin(arg);
  725. /*<       gm=gm*dcos(arg)-go >*/
  726.     gm = gm * cos(arg) - go;
  727. /*<   270 gx=value(loct+16) >*/
  728. L270:
  729.     gx = blank_1.value[loct + 15];
  730. /*<       xcpi=value(loct+9)*omega >*/
  731.     xcpi = blank_1.value[loct + 8] * status_1.omega;
  732. /*<       xcmu=value(loct+11)*omega >*/
  733.     xcmu = blank_1.value[loct + 10] * status_1.omega;
  734. /*<       xcbx=value(loct+15)*omega >*/
  735.     xcbx = blank_1.value[loct + 14] * status_1.omega;
  736. /*<       xccs=value(loct+13)*omega >*/
  737.     xccs = blank_1.value[loct + 12] * status_1.omega;
  738. /*<       xcmcb=value(loct+17)*omega >*/
  739.     xcmcb = blank_1.value[loct + 16] * status_1.omega;
  740. /*<       locy=lynl+nodplc(loc+24) >*/
  741.     locy = tabinf_1.lynl + nodplc[loc + 23];
  742. /*<       value(locy)=value(locy)+gcpr >*/
  743.     blank_1.value[locy - 1] += gcpr;
  744. /*<       locy=lynl+nodplc(loc+25) >*/
  745.     locy = tabinf_1.lynl + nodplc[loc + 24];
  746. /*<       locyi=imynl+nodplc(loc+25) >*/
  747.     locyi = tabinf_1.imynl + nodplc[loc + 24];
  748. /*<       value(locy)=value(locy)+gx >*/
  749.     blank_1.value[locy - 1] += gx;
  750. /*<       value(locyi)=value(locyi)+xcbx >*/
  751.     blank_1.value[locyi - 1] += xcbx;
  752. /*<       locy=lynl+nodplc(loc+26) >*/
  753.     locy = tabinf_1.lynl + nodplc[loc + 25];
  754. /*<       value(locy)=value(locy)+gepr >*/
  755.     blank_1.value[locy - 1] += gepr;
  756. /*<       locy=lynl+nodplc(loc+27) >*/
  757.     locy = tabinf_1.lynl + nodplc[loc + 26];
  758. /*<       locyi=imynl+nodplc(loc+27) >*/
  759.     locyi = tabinf_1.imynl + nodplc[loc + 26];
  760. /*<       value(locy)=value(locy)+gmu+go+gcpr >*/
  761.     blank_1.value[locy - 1] = blank_1.value[locy - 1] + gmu + go + gcpr;
  762. /*<       value(locyi)=value(locyi)+xcmu+xccs+xcbx >*/
  763.     blank_1.value[locyi - 1] = blank_1.value[locyi - 1] + xcmu + xccs + xcbx;
  764. /*<       locy=lynl+nodplc(loc+28) >*/
  765.     locy = tabinf_1.lynl + nodplc[loc + 27];
  766. /*<       locyi=imynl+nodplc(loc+28) >*/
  767.     locyi = tabinf_1.imynl + nodplc[loc + 27];
  768. /*<       value(locy)=value(locy)+gx+gpi+gmu >*/
  769.     blank_1.value[locy - 1] = blank_1.value[locy - 1] + gx + gpi + gmu;
  770. /*<       value(locyi)=value(locyi)+xcpi+xcmu+xcmcb >*/
  771.     blank_1.value[locyi - 1] = blank_1.value[locyi - 1] + xcpi + xcmu + xcmcb;
  772.  
  773. /*<       locy=lynl+nodplc(loc+29) >*/
  774.     locy = tabinf_1.lynl + nodplc[loc + 28];
  775. /*<       locyi=imynl+nodplc(loc+29) >*/
  776.     locyi = tabinf_1.imynl + nodplc[loc + 28];
  777. /*<       value(locy)=value(locy)+gpi+gepr+gm+go >*/
  778.     blank_1.value[locy - 1] = blank_1.value[locy - 1] + gpi + gepr + gm + go;
  779. /*<       value(locyi)=value(locyi)+xcpi+xgm >*/
  780.     blank_1.value[locyi - 1] = blank_1.value[locyi - 1] + xcpi + xgm;
  781. /*<       locy=lynl+nodplc(loc+10) >*/
  782.     locy = tabinf_1.lynl + nodplc[loc + 9];
  783. /*<       value(locy)=value(locy)-gcpr >*/
  784.     blank_1.value[locy - 1] -= gcpr;
  785. /*<       locy=lynl+nodplc(loc+11) >*/
  786.     locy = tabinf_1.lynl + nodplc[loc + 10];
  787. /*<       value(locy)=value(locy)-gx >*/
  788.     blank_1.value[locy - 1] -= gx;
  789. /*<       locy=lynl+nodplc(loc+12) >*/
  790.     locy = tabinf_1.lynl + nodplc[loc + 11];
  791. /*<       value(locy)=value(locy)-gepr >*/
  792.     blank_1.value[locy - 1] -= gepr;
  793. /*<       locy=lynl+nodplc(loc+13) >*/
  794.     locy = tabinf_1.lynl + nodplc[loc + 12];
  795. /*<       value(locy)=value(locy)-gcpr >*/
  796.     blank_1.value[locy - 1] -= gcpr;
  797. /*<       locy=lynl+nodplc(loc+14) >*/
  798.     locy = tabinf_1.lynl + nodplc[loc + 13];
  799. /*<       locyi=imynl+nodplc(loc+14) >*/
  800.     locyi = tabinf_1.imynl + nodplc[loc + 13];
  801. /*<       value(locy)=value(locy)-gmu+gm >*/
  802.     blank_1.value[locy - 1] = blank_1.value[locy - 1] - gmu + gm;
  803. /*<       value(locyi)=value(locyi)-xcmu+xgm >*/
  804.     blank_1.value[locyi - 1] = blank_1.value[locyi - 1] - xcmu + xgm;
  805. /*<       locy=lynl+nodplc(loc+15) >*/
  806.     locy = tabinf_1.lynl + nodplc[loc + 14];
  807. /*<       locyi=imynl+nodplc(loc+15) >*/
  808.     locyi = tabinf_1.imynl + nodplc[loc + 14];
  809. /*<       value(locy)=value(locy)-gm-go >*/
  810.     blank_1.value[locy - 1] = blank_1.value[locy - 1] - gm - go;
  811. /*<       value(locyi)=value(locyi)-xgm >*/
  812.     blank_1.value[locyi - 1] -= xgm;
  813. /*<       locy=lynl+nodplc(loc+16) >*/
  814.     locy = tabinf_1.lynl + nodplc[loc + 15];
  815. /*<       value(locy)=value(locy)-gx >*/
  816.     blank_1.value[locy - 1] -= gx;
  817. /*<       locy=lynl+nodplc(loc+17) >*/
  818.     locy = tabinf_1.lynl + nodplc[loc + 16];
  819. /*<       locyi=imynl+nodplc(loc+17) >*/
  820.     locyi = tabinf_1.imynl + nodplc[loc + 16];
  821. /*<       value(locy)=value(locy)-gmu >*/
  822.     blank_1.value[locy - 1] -= gmu;
  823. /*<       value(locyi)=value(locyi)-xcmu-xcmcb >*/
  824.     blank_1.value[locyi - 1] = blank_1.value[locyi - 1] - xcmu - xcmcb;
  825. /*<       locy=lynl+nodplc(loc+18) >*/
  826.     locy = tabinf_1.lynl + nodplc[loc + 17];
  827. /*<       locyi=imynl+nodplc(loc+18) >*/
  828.     locyi = tabinf_1.imynl + nodplc[loc + 17];
  829. /*<       value(locy)=value(locy)-gpi >*/
  830.     blank_1.value[locy - 1] -= gpi;
  831. /*<       value(locyi)=value(locyi)-xcpi >*/
  832.     blank_1.value[locyi - 1] -= xcpi;
  833. /*<       locy=lynl+nodplc(loc+19) >*/
  834.     locy = tabinf_1.lynl + nodplc[loc + 18];
  835. /*<       value(locy)=value(locy)-gepr >*/
  836.     blank_1.value[locy - 1] -= gepr;
  837. /*<       locy=lynl+nodplc(loc+20) >*/
  838.     locy = tabinf_1.lynl + nodplc[loc + 19];
  839. /*<       locyi=imynl+nodplc(loc+20) >*/
  840.     locyi = tabinf_1.imynl + nodplc[loc + 19];
  841. /*<       value(locy)=value(locy)-go >*/
  842.     blank_1.value[locy - 1] -= go;
  843. /*<       value(locyi)=value(locyi)+xcmcb >*/
  844.     blank_1.value[locyi - 1] += xcmcb;
  845. /*<       locy=lynl+nodplc(loc+21) >*/
  846.     locy = tabinf_1.lynl + nodplc[loc + 20];
  847. /*<       locyi=imynl+nodplc(loc+21) >*/
  848.     locyi = tabinf_1.imynl + nodplc[loc + 20];
  849. /*<       value(locy)=value(locy)-gpi-gm >*/
  850.     blank_1.value[locy - 1] = blank_1.value[locy - 1] - gpi - gm;
  851. /*<       value(locyi)=value(locyi)-xcpi-xgm-xcmcb >*/
  852.     blank_1.value[locyi - 1] = blank_1.value[locyi - 1] - xcpi - xgm - xcmcb;
  853. /*<       locyi=imynl+nodplc(loc+31) >*/
  854.     locyi = tabinf_1.imynl + nodplc[loc + 30];
  855. /*<       value(locyi)=value(locyi)+xccs >*/
  856.     blank_1.value[locyi - 1] += xccs;
  857. /*<       locyi=imynl+nodplc(loc+32) >*/
  858.     locyi = tabinf_1.imynl + nodplc[loc + 31];
  859. /*<       value(locyi)=value(locyi)-xccs >*/
  860.     blank_1.value[locyi - 1] -= xccs;
  861. /*<       locyi=imynl+nodplc(loc+33) >*/
  862.     locyi = tabinf_1.imynl + nodplc[loc + 32];
  863. /*<       value(locyi)=value(locyi)-xccs >*/
  864.     blank_1.value[locyi - 1] -= xccs;
  865. /*<       locyi=imynl+nodplc(loc+34) >*/
  866.     locyi = tabinf_1.imynl + nodplc[loc + 33];
  867. /*<       value(locyi)=value(locyi)-xcbx >*/
  868.     blank_1.value[locyi - 1] -= xcbx;
  869. /*<       locyi=imynl+nodplc(loc+35) >*/
  870.     locyi = tabinf_1.imynl + nodplc[loc + 34];
  871. /*<       value(locyi)=value(locyi)-xcbx >*/
  872.     blank_1.value[locyi - 1] -= xcbx;
  873. /*<       loc=nodplc(loc) >*/
  874.     loc = nodplc[loc - 1];
  875. /*<       go to 260 >*/
  876.     goto L260;
  877.  
  878. /*  jfets */
  879.  
  880. /*<   300 loc=locate(13) >*/
  881. L300:
  882.     loc = cirdat_1.locate[12];
  883. /*<   310 if ((loc.eq.0).or.(nodplc(loc+25).ne.0)) go to 350 >*/
  884. L310:
  885.     if (loc == 0 || nodplc[loc + 24] != 0) {
  886.     goto L350;
  887.     }
  888. /*<       locv=nodplc(loc+1) >*/
  889.     locv = nodplc[loc];
  890. /*<       area=value(locv+1) >*/
  891.     area = blank_1.value[locv];
  892. /*<       locm=nodplc(loc+7) >*/
  893.     locm = nodplc[loc + 6];
  894. /*<       locm=nodplc(locm+1) >*/
  895.     locm = nodplc[locm];
  896. /*<       loct=lx0+nodplc(loc+19) >*/
  897.     loct = tabinf_1.lx0 + nodplc[loc + 18];
  898. /*<       gdpr=value(locm+4)*area >*/
  899.     gdpr = blank_1.value[locm + 3] * area;
  900. /*<       gspr=value(locm+5)*area >*/
  901.     gspr = blank_1.value[locm + 4] * area;
  902. /*<       gm=value(loct+5) >*/
  903.     gm = blank_1.value[loct + 4];
  904. /*<       gds=value(loct+6) >*/
  905.     gds = blank_1.value[loct + 5];
  906. /*<       ggs=value(loct+7) >*/
  907.     ggs = blank_1.value[loct + 6];
  908. /*<       xgs=value(loct+9)*omega >*/
  909.     xgs = blank_1.value[loct + 8] * status_1.omega;
  910. /*<       ggd=value(loct+8) >*/
  911.     ggd = blank_1.value[loct + 7];
  912. /*<       xgd=value(loct+11)*omega >*/
  913.     xgd = blank_1.value[loct + 10] * status_1.omega;
  914. /*<       locy=lynl+nodplc(loc+20) >*/
  915.     locy = tabinf_1.lynl + nodplc[loc + 19];
  916. /*<       value(locy)=value(locy)+gdpr >*/
  917.     blank_1.value[locy - 1] += gdpr;
  918. /*<       locy=lynl+nodplc(loc+21) >*/
  919.     locy = tabinf_1.lynl + nodplc[loc + 20];
  920. /*<       locyi=imynl+nodplc(loc+21) >*/
  921.     locyi = tabinf_1.imynl + nodplc[loc + 20];
  922. /*<       value(locy)=value(locy)+ggd+ggs >*/
  923.     blank_1.value[locy - 1] = blank_1.value[locy - 1] + ggd + ggs;
  924. /*<       value(locyi)=value(locyi)+xgd+xgs >*/
  925.     blank_1.value[locyi - 1] = blank_1.value[locyi - 1] + xgd + xgs;
  926. /*<       locy=lynl+nodplc(loc+22) >*/
  927.     locy = tabinf_1.lynl + nodplc[loc + 21];
  928. /*<       value(locy)=value(locy)+gspr >*/
  929.     blank_1.value[locy - 1] += gspr;
  930. /*<       locy=lynl+nodplc(loc+23) >*/
  931.     locy = tabinf_1.lynl + nodplc[loc + 22];
  932. /*<       locyi=imynl+nodplc(loc+23) >*/
  933.     locyi = tabinf_1.imynl + nodplc[loc + 22];
  934. /*<       value(locy)=value(locy)+gdpr+gds+ggd >*/
  935.     blank_1.value[locy - 1] = blank_1.value[locy - 1] + gdpr + gds + ggd;
  936. /*<       value(locyi)=value(locyi)+xgd >*/
  937.     blank_1.value[locyi - 1] += xgd;
  938. /*<       locy=lynl+nodplc(loc+24) >*/
  939.     locy = tabinf_1.lynl + nodplc[loc + 23];
  940. /*<       locyi=imynl+nodplc(loc+24) >*/
  941.     locyi = tabinf_1.imynl + nodplc[loc + 23];
  942. /*<       value(locy)=value(locy)+gspr+gds+gm+ggs >*/
  943.     blank_1.value[locy - 1] = blank_1.value[locy - 1] + gspr + gds + gm + ggs;
  944.  
  945. /*<       value(locyi)=value(locyi)+xgs >*/
  946.     blank_1.value[locyi - 1] += xgs;
  947. /*<       locy=lynl+nodplc(loc+9) >*/
  948.     locy = tabinf_1.lynl + nodplc[loc + 8];
  949. /*<       value(locy)=value(locy)-gdpr >*/
  950.     blank_1.value[locy - 1] -= gdpr;
  951. /*<       locy=lynl+nodplc(loc+10) >*/
  952.     locy = tabinf_1.lynl + nodplc[loc + 9];
  953. /*<       locyi=imynl+nodplc(loc+10) >*/
  954.     locyi = tabinf_1.imynl + nodplc[loc + 9];
  955. /*<       value(locy)=value(locy)-ggd >*/
  956.     blank_1.value[locy - 1] -= ggd;
  957. /*<       value(locyi)=value(locyi)-xgd >*/
  958.     blank_1.value[locyi - 1] -= xgd;
  959. /*<       locy=lynl+nodplc(loc+11) >*/
  960.     locy = tabinf_1.lynl + nodplc[loc + 10];
  961. /*<       locyi=imynl+nodplc(loc+11) >*/
  962.     locyi = tabinf_1.imynl + nodplc[loc + 10];
  963. /*<       value(locy)=value(locy)-ggs >*/
  964.     blank_1.value[locy - 1] -= ggs;
  965. /*<       value(locyi)=value(locyi)-xgs >*/
  966.     blank_1.value[locyi - 1] -= xgs;
  967. /*<       locy=lynl+nodplc(loc+12) >*/
  968.     locy = tabinf_1.lynl + nodplc[loc + 11];
  969. /*<       value(locy)=value(locy)-gspr >*/
  970.     blank_1.value[locy - 1] -= gspr;
  971. /*<       locy=lynl+nodplc(loc+13) >*/
  972.     locy = tabinf_1.lynl + nodplc[loc + 12];
  973. /*<       value(locy)=value(locy)-gdpr >*/
  974.     blank_1.value[locy - 1] -= gdpr;
  975. /*<       locy=lynl+nodplc(loc+14) >*/
  976.     locy = tabinf_1.lynl + nodplc[loc + 13];
  977. /*<       locyi=imynl+nodplc(loc+14) >*/
  978.     locyi = tabinf_1.imynl + nodplc[loc + 13];
  979. /*<       value(locy)=value(locy)-ggd+gm >*/
  980.     blank_1.value[locy - 1] = blank_1.value[locy - 1] - ggd + gm;
  981. /*<       value(locyi)=value(locyi)-xgd >*/
  982.     blank_1.value[locyi - 1] -= xgd;
  983. /*<       locy=lynl+nodplc(loc+15) >*/
  984.     locy = tabinf_1.lynl + nodplc[loc + 14];
  985. /*<       value(locy)=value(locy)-gds-gm >*/
  986.     blank_1.value[locy - 1] = blank_1.value[locy - 1] - gds - gm;
  987. /*<       locy=lynl+nodplc(loc+16) >*/
  988.     locy = tabinf_1.lynl + nodplc[loc + 15];
  989. /*<       locyi=imynl+nodplc(loc+16) >*/
  990.     locyi = tabinf_1.imynl + nodplc[loc + 15];
  991. /*<       value(locy)=value(locy)-ggs-gm >*/
  992.     blank_1.value[locy - 1] = blank_1.value[locy - 1] - ggs - gm;
  993. /*<       value(locyi)=value(locyi)-xgs >*/
  994.     blank_1.value[locyi - 1] -= xgs;
  995. /*<       locy=lynl+nodplc(loc+17) >*/
  996.     locy = tabinf_1.lynl + nodplc[loc + 16];
  997. /*<       value(locy)=value(locy)-gspr >*/
  998.     blank_1.value[locy - 1] -= gspr;
  999. /*<       locy=lynl+nodplc(loc+18) >*/
  1000.     locy = tabinf_1.lynl + nodplc[loc + 17];
  1001. /*<       value(locy)=value(locy)-gds >*/
  1002.     blank_1.value[locy - 1] -= gds;
  1003. /*<       loc=nodplc(loc) >*/
  1004.     loc = nodplc[loc - 1];
  1005. /*<       go to 310 >*/
  1006.     goto L310;
  1007.  
  1008. /*  mosfets */
  1009.  
  1010. /*<   350 loc=locate(14) >*/
  1011. L350:
  1012.     loc = cirdat_1.locate[13];
  1013. /*<   360 if ((loc.eq.0).or.(nodplc(loc+33).ne.0)) go to 400 >*/
  1014. L360:
  1015.     if (loc == 0 || nodplc[loc + 32] != 0) {
  1016.     goto L400;
  1017.     }
  1018. /*<       locv=nodplc(loc+1) >*/
  1019.     locv = nodplc[loc];
  1020. /*<       locm=nodplc(loc+8) >*/
  1021.     locm = nodplc[loc + 7];
  1022. /*<       itype=nodplc(locm+2) >*/
  1023.     itype = nodplc[locm + 1];
  1024. /*<       locm=nodplc(locm+1) >*/
  1025.     locm = nodplc[locm];
  1026. /*<       devmod=value(locv+8) >*/
  1027.     devmod = blank_1.value[locv + 7];
  1028. /*<       xnrm=1.0d0 >*/
  1029.     xnrm = 1.;
  1030. /*<       xrev=0.0d0 >*/
  1031.     xrev = 0.;
  1032. /*<       if (devmod.ge.0.0d0) go to 370 >*/
  1033.     if (devmod >= 0.) {
  1034.     goto L370;
  1035.     }
  1036. /*<       xnrm=0.0d0 >*/
  1037.     xnrm = 0.;
  1038. /*<       xrev=1.0d0 >*/
  1039.     xrev = 1.;
  1040. /*<   370 loct=lx0+nodplc(loc+26) >*/
  1041. L370:
  1042.     loct = tabinf_1.lx0 + nodplc[loc + 25];
  1043. /*<       if (value(locm+7).eq.0.0d0.and. >*/
  1044. /*<      1   value(locm+8).eq.0.0d0) go to 375 >*/
  1045.     if (blank_1.value[locm + 6] == 0. && blank_1.value[locm + 7] == 0.) {
  1046.     goto L375;
  1047.     }
  1048. /*<       gdpr=value(locm+7) >*/
  1049.     gdpr = blank_1.value[locm + 6];
  1050. /*<       gspr=value(locm+8) >*/
  1051.     gspr = blank_1.value[locm + 7];
  1052. /*<       go to 380 >*/
  1053.     goto L380;
  1054. /*<   375 gdpr=value(locm+16)/value(locv+13) >*/
  1055. L375:
  1056.     gdpr = blank_1.value[locm + 15] / blank_1.value[locv + 12];
  1057. /*<       gspr=value(locm+16)/value(locv+14) >*/
  1058.     gspr = blank_1.value[locm + 15] / blank_1.value[locv + 13];
  1059. /*<   380 gm=value(loct+7) >*/
  1060. L380:
  1061.     gm = blank_1.value[loct + 6];
  1062. /*<       gds=value(loct+8) >*/
  1063.     gds = blank_1.value[loct + 7];
  1064. /*<       gmbs=value(loct+9) >*/
  1065.     gmbs = blank_1.value[loct + 8];
  1066. /*<       gbd=value(loct+10) >*/
  1067.     gbd = blank_1.value[loct + 9];
  1068. /*<       gbs=value(loct+11) >*/
  1069.     gbs = blank_1.value[loct + 10];
  1070. /*<       capbd=value(loct+24) >*/
  1071.     capbd = blank_1.value[loct + 23];
  1072. /*<       capbs=value(loct+26) >*/
  1073.     capbs = blank_1.value[loct + 25];
  1074. /* c */
  1075. /* c    charge oriented model parameters */
  1076. /* c */
  1077. /*<       xl=value(locv+1)-2.0d0*value(locm+28) >*/
  1078.     xl = blank_1.value[locv] - blank_1.value[locm + 27] * 2.;
  1079. /*<       xw=value(locv+2) >*/
  1080.     xw = blank_1.value[locv + 1];
  1081. /*<       xqco=value(locm+35) >*/
  1082.     xqco = blank_1.value[locm + 34];
  1083. /*<       xqc=value(locv+15) >*/
  1084.     xqc = blank_1.value[locv + 14];
  1085. /*<       covlgs=value(locm+13)*xw >*/
  1086.     covlgs = blank_1.value[locm + 12] * xw;
  1087. /*<       covlgd=value(locm+14)*xw >*/
  1088.     covlgd = blank_1.value[locm + 13] * xw;
  1089. /*<       covlgb=value(locm+15)*xl >*/
  1090.     covlgb = blank_1.value[locm + 14] * xl;
  1091. /*<       if (xqco.gt.0.5d0) go to 385 >*/
  1092.     if (xqco > .5) {
  1093.     goto L385;
  1094.     }
  1095. /*<       cggb=value(loct+18) >*/
  1096.     cggb = blank_1.value[loct + 17];
  1097. /*<       cgdb=value(loct+19) >*/
  1098.     cgdb = blank_1.value[loct + 18];
  1099. /*<       cgsb=value(loct+20) >*/
  1100.     cgsb = blank_1.value[loct + 19];
  1101. /*<       cbgb=value(loct+21) >*/
  1102.     cbgb = blank_1.value[loct + 20];
  1103. /*<       cbdb=value(loct+22) >*/
  1104.     cbdb = blank_1.value[loct + 21];
  1105. /*<       cbsb=value(loct+23) >*/
  1106.     cbsb = blank_1.value[loct + 22];
  1107. /*<       gcg=(cggb+cbgb)*omega >*/
  1108.     gcg = (cggb + cbgb) * status_1.omega;
  1109. /*<       gcd=(cgdb+cbdb)*omega >*/
  1110.     gcd = (cgdb + cbdb) * status_1.omega;
  1111. /*<       gcs=(cgsb+cbsb)*omega >*/
  1112.     gcs = (cgsb + cbsb) * status_1.omega;
  1113. /*<       xcgxd=-xqc*gcg >*/
  1114.     xcgxd = -xqc * gcg;
  1115. /*<       xcgxs=-(1.0d0-xqc)*gcg >*/
  1116.     xcgxs = -(1. - xqc) * gcg;
  1117. /*<       xcdxd=-xqc*gcd >*/
  1118.     xcdxd = -xqc * gcd;
  1119. /*<       xcdxs=-(1.0d0-xqc)*gcd >*/
  1120.     xcdxs = -(1. - xqc) * gcd;
  1121. /*<       xcsxd=-xqc*gcs >*/
  1122.     xcsxd = -xqc * gcs;
  1123. /*<       xcsxs=-(1.0d0-xqc)*gcs >*/
  1124.     xcsxs = -(1. - xqc) * gcs;
  1125. /*<       xcdgb=xcgxd-covlgd*omega >*/
  1126.     xcdgb = xcgxd - covlgd * status_1.omega;
  1127. /*<       xcddb=xcdxd+(capbd+covlgd)*omega >*/
  1128.     xcddb = xcdxd + (capbd + covlgd) * status_1.omega;
  1129. /*<       xcdsb=xcsxd >*/
  1130.     xcdsb = xcsxd;
  1131. /*<       xcsgb=xcgxs-covlgs*omega >*/
  1132.     xcsgb = xcgxs - covlgs * status_1.omega;
  1133. /*<       xcsdb=xcdxs >*/
  1134.     xcsdb = xcdxs;
  1135. /*<       xcssb=xcsxs+(capbs+covlgs)*omega >*/
  1136.     xcssb = xcsxs + (capbs + covlgs) * status_1.omega;
  1137. /*<       xcggb=(cggb+covlgd+covlgs+covlgb)*omega >*/
  1138.     xcggb = (cggb + covlgd + covlgs + covlgb) * status_1.omega;
  1139. /*<       xcgdb=(cgdb-covlgd)*omega >*/
  1140.     xcgdb = (cgdb - covlgd) * status_1.omega;
  1141. /*<       xcgsb=(cgsb-covlgs)*omega >*/
  1142.     xcgsb = (cgsb - covlgs) * status_1.omega;
  1143. /*<       xcbgb=(cbgb-covlgb)*omega >*/
  1144.     xcbgb = (cbgb - covlgb) * status_1.omega;
  1145. /*<       xcbdb=(cbdb-capbd)*omega >*/
  1146.     xcbdb = (cbdb - capbd) * status_1.omega;
  1147. /*<       xcbsb=(cbsb-capbs)*omega >*/
  1148.     xcbsb = (cbsb - capbs) * status_1.omega;
  1149. /*<       go to 390 >*/
  1150.     goto L390;
  1151.  
  1152. /*     meyer"s model parameters */
  1153.  
  1154. /*<   385 xcgs=(value(loct+12)+covlgs)*omega >*/
  1155. L385:
  1156.     xcgs = (blank_1.value[loct + 11] + covlgs) * status_1.omega;
  1157. /*<       xcgd=(value(loct+14)+covlgd)*omega >*/
  1158.     xcgd = (blank_1.value[loct + 13] + covlgd) * status_1.omega;
  1159. /*<       xcgb=(value(loct+16)+covlgb)*omega >*/
  1160.     xcgb = (blank_1.value[loct + 15] + covlgb) * status_1.omega;
  1161. /*<       xbd=capbd*omega >*/
  1162.     xbd = capbd * status_1.omega;
  1163. /*<       xbs=capbs*omega >*/
  1164.     xbs = capbs * status_1.omega;
  1165. /* c */
  1166. /* c    do the mapping from meyer"s model into charge oriented model */
  1167. /* c */
  1168. /*<       xcggb=xcgd+xcgs+xcgb >*/
  1169.     xcggb = xcgd + xcgs + xcgb;
  1170. /*<       xcgdb=-xcgd >*/
  1171.     xcgdb = -xcgd;
  1172. /*<       xcgsb=-xcgs >*/
  1173.     xcgsb = -xcgs;
  1174. /*<       xcbgb=-xcgb >*/
  1175.     xcbgb = -xcgb;
  1176. /*<       xcbdb=-xbd >*/
  1177.     xcbdb = -xbd;
  1178. /*<       xcbsb=-xbs >*/
  1179.     xcbsb = -xbs;
  1180. /*<       xcddb=xcgd+xbd >*/
  1181.     xcddb = xcgd + xbd;
  1182. /*<       xcssb=xcgs+xbs >*/
  1183.     xcssb = xcgs + xbs;
  1184. /* c    xcgsb=-xcgb */
  1185. /*<       xcdgb=-xcgd >*/
  1186.     xcdgb = -xcgd;
  1187. /*<       xcsgb=-xcgs >*/
  1188.     xcsgb = -xcgs;
  1189. /*<       xcdsb=0.0d0 >*/
  1190.     xcdsb = 0.;
  1191. /*<       xcsdb=0.0d0 >*/
  1192.     xcsdb = 0.;
  1193. /* c */
  1194. /*<   390 locyi=imynl+nodplc(loc+28) >*/
  1195. L390:
  1196.     locyi = tabinf_1.imynl + nodplc[loc + 27];
  1197. /*<       value(locyi)=value(locyi)+xcggb >*/
  1198.     blank_1.value[locyi - 1] += xcggb;
  1199. /*<       locyi=imynl+nodplc(loc+30) >*/
  1200.     locyi = tabinf_1.imynl + nodplc[loc + 29];
  1201. /*<       value(locyi)=value(locyi)-xcbgb-xcbdb-xcbsb >*/
  1202.     blank_1.value[locyi - 1] = blank_1.value[locyi - 1] - xcbgb - xcbdb - 
  1203.         xcbsb;
  1204. /*<       locyi=imynl+nodplc(loc+31) >*/
  1205.     locyi = tabinf_1.imynl + nodplc[loc + 30];
  1206. /*<       value(locyi)=value(locyi)+xcddb >*/
  1207.     blank_1.value[locyi - 1] += xcddb;
  1208. /*<       locyi=imynl+nodplc(loc+32) >*/
  1209.     locyi = tabinf_1.imynl + nodplc[loc + 31];
  1210. /*<       value(locyi)=value(locyi)+xcssb >*/
  1211.     blank_1.value[locyi - 1] += xcssb;
  1212. /*<       locyi=imynl+nodplc(loc+11) >*/
  1213.     locyi = tabinf_1.imynl + nodplc[loc + 10];
  1214. /*<       value(locyi)=value(locyi)-xcggb-xcgdb-xcgsb >*/
  1215.     blank_1.value[locyi - 1] = blank_1.value[locyi - 1] - xcggb - xcgdb - 
  1216.         xcgsb;
  1217. /*<       locyi=imynl+nodplc(loc+12) >*/
  1218.     locyi = tabinf_1.imynl + nodplc[loc + 11];
  1219. /*<       value(locyi)=value(locyi)+xcgdb >*/
  1220.     blank_1.value[locyi - 1] += xcgdb;
  1221. /*<       locyi=imynl+nodplc(loc+13) >*/
  1222.     locyi = tabinf_1.imynl + nodplc[loc + 12];
  1223. /*<       value(locyi)=value(locyi)+xcgsb >*/
  1224.     blank_1.value[locyi - 1] += xcgsb;
  1225. /*<       locyi=imynl+nodplc(loc+15) >*/
  1226.     locyi = tabinf_1.imynl + nodplc[loc + 14];
  1227. /*<       value(locyi)=value(locyi)+xcbgb >*/
  1228.     blank_1.value[locyi - 1] += xcbgb;
  1229. /*<       locyi=imynl+nodplc(loc+16) >*/
  1230.     locyi = tabinf_1.imynl + nodplc[loc + 15];
  1231. /*<       value(locyi)=value(locyi)+xcbdb >*/
  1232.     blank_1.value[locyi - 1] += xcbdb;
  1233. /*<       locyi=imynl+nodplc(loc+17) >*/
  1234.     locyi = tabinf_1.imynl + nodplc[loc + 16];
  1235. /*<       value(locyi)=value(locyi)+xcbsb >*/
  1236.     blank_1.value[locyi - 1] += xcbsb;
  1237. /*<       locyi=imynl+nodplc(loc+19) >*/
  1238.     locyi = tabinf_1.imynl + nodplc[loc + 18];
  1239. /*<       value(locyi)=value(locyi)+xcdgb >*/
  1240.     blank_1.value[locyi - 1] += xcdgb;
  1241. /*<       locyi=imynl+nodplc(loc+20) >*/
  1242.     locyi = tabinf_1.imynl + nodplc[loc + 19];
  1243. /*<       value(locyi)=value(locyi)-xcdgb-xcddb-xcdsb >*/
  1244.     blank_1.value[locyi - 1] = blank_1.value[locyi - 1] - xcdgb - xcddb - 
  1245.         xcdsb;
  1246. /*<       locyi=imynl+nodplc(loc+21) >*/
  1247.     locyi = tabinf_1.imynl + nodplc[loc + 20];
  1248. /*<       value(locyi)=value(locyi)+xcdsb >*/
  1249.     blank_1.value[locyi - 1] += xcdsb;
  1250. /*<       locyi=imynl+nodplc(loc+22) >*/
  1251.     locyi = tabinf_1.imynl + nodplc[loc + 21];
  1252. /*<       value(locyi)=value(locyi)+xcsgb >*/
  1253.     blank_1.value[locyi - 1] += xcsgb;
  1254. /*<       locyi=imynl+nodplc(loc+24) >*/
  1255.     locyi = tabinf_1.imynl + nodplc[loc + 23];
  1256. /*<       value(locyi)=value(locyi)-xcsgb-xcsdb-xcssb >*/
  1257.     blank_1.value[locyi - 1] = blank_1.value[locyi - 1] - xcsgb - xcsdb - 
  1258.         xcssb;
  1259. /*<       locyi=imynl+nodplc(loc+25) >*/
  1260.     locyi = tabinf_1.imynl + nodplc[loc + 24];
  1261. /*<       value(locyi)=value(locyi)+xcsdb >*/
  1262.     blank_1.value[locyi - 1] += xcsdb;
  1263. /*<       locy=lynl+nodplc(loc+27) >*/
  1264.     locy = tabinf_1.lynl + nodplc[loc + 26];
  1265. /*<       value(locy)=value(locy)+gdpr >*/
  1266.     blank_1.value[locy - 1] += gdpr;
  1267. /*<       locy=lynl+nodplc(loc+29) >*/
  1268.     locy = tabinf_1.lynl + nodplc[loc + 28];
  1269. /*<       value(locy)=value(locy)+gspr >*/
  1270.     blank_1.value[locy - 1] += gspr;
  1271. /*<       locy=lynl+nodplc(loc+30) >*/
  1272.     locy = tabinf_1.lynl + nodplc[loc + 29];
  1273. /*<       value(locy)=value(locy)+gbd+gbs >*/
  1274.     blank_1.value[locy - 1] = blank_1.value[locy - 1] + gbd + gbs;
  1275. /*<       locy=lynl+nodplc(loc+31) >*/
  1276.     locy = tabinf_1.lynl + nodplc[loc + 30];
  1277. /*<       value(locy)=value(locy)+gdpr+gds+gbd+xrev*(gm+gmbs) >*/
  1278.     blank_1.value[locy - 1] = blank_1.value[locy - 1] + gdpr + gds + gbd + 
  1279.         xrev * (gm + gmbs);
  1280. /*<       locy=lynl+nodplc(loc+32) >*/
  1281.     locy = tabinf_1.lynl + nodplc[loc + 31];
  1282. /*<       value(locy)=value(locy)+gspr+gds+gbs+xnrm*(gm+gmbs) >*/
  1283.     blank_1.value[locy - 1] = blank_1.value[locy - 1] + gspr + gds + gbs + 
  1284.         xnrm * (gm + gmbs);
  1285. /*<       locy=lynl+nodplc(loc+10) >*/
  1286.     locy = tabinf_1.lynl + nodplc[loc + 9];
  1287. /*<       value(locy)=value(locy)-gdpr >*/
  1288.     blank_1.value[locy - 1] -= gdpr;
  1289. /*<       locy=lynl+nodplc(loc+14) >*/
  1290.     locy = tabinf_1.lynl + nodplc[loc + 13];
  1291. /*<       value(locy)=value(locy)-gspr >*/
  1292.     blank_1.value[locy - 1] -= gspr;
  1293. /*<       locy=lynl+nodplc(loc+16) >*/
  1294.     locy = tabinf_1.lynl + nodplc[loc + 15];
  1295. /*<       value(locy)=value(locy)-gbd >*/
  1296.     blank_1.value[locy - 1] -= gbd;
  1297. /*<       locy=lynl+nodplc(loc+17) >*/
  1298.     locy = tabinf_1.lynl + nodplc[loc + 16];
  1299. /*<       value(locy)=value(locy)-gbs >*/
  1300.     blank_1.value[locy - 1] -= gbs;
  1301. /*<       locy=lynl+nodplc(loc+18) >*/
  1302.     locy = tabinf_1.lynl + nodplc[loc + 17];
  1303. /*<       value(locy)=value(locy)-gdpr >*/
  1304.     blank_1.value[locy - 1] -= gdpr;
  1305. /*<       locy=lynl+nodplc(loc+19) >*/
  1306.     locy = tabinf_1.lynl + nodplc[loc + 18];
  1307. /*<       value(locy)=value(locy)+(xnrm-xrev)*gm >*/
  1308.     blank_1.value[locy - 1] += (xnrm - xrev) * gm;
  1309. /*<       locy=lynl+nodplc(loc+20) >*/
  1310.     locy = tabinf_1.lynl + nodplc[loc + 19];
  1311. /*<       value(locy)=value(locy)-gbd+(xnrm-xrev)*gmbs >*/
  1312.     blank_1.value[locy - 1] = blank_1.value[locy - 1] - gbd + (xnrm - xrev) * 
  1313.         gmbs;
  1314. /*<       locy=lynl+nodplc(loc+21) >*/
  1315.     locy = tabinf_1.lynl + nodplc[loc + 20];
  1316. /*<       value(locy)=value(locy)-gds-xnrm*(gm+gmbs) >*/
  1317.     blank_1.value[locy - 1] = blank_1.value[locy - 1] - gds - xnrm * (gm + 
  1318.         gmbs);
  1319. /*<       locy=lynl+nodplc(loc+22) >*/
  1320.     locy = tabinf_1.lynl + nodplc[loc + 21];
  1321. /*<       value(locy)=value(locy)-(xnrm-xrev)*gm >*/
  1322.     blank_1.value[locy - 1] -= (xnrm - xrev) * gm;
  1323. /*<       locy=lynl+nodplc(loc+23) >*/
  1324.     locy = tabinf_1.lynl + nodplc[loc + 22];
  1325. /*<       value(locy)=value(locy)-gspr >*/
  1326.     blank_1.value[locy - 1] -= gspr;
  1327. /*<       locy=lynl+nodplc(loc+24) >*/
  1328.     locy = tabinf_1.lynl + nodplc[loc + 23];
  1329. /*<       value(locy)=value(locy)-gbs-(xnrm-xrev)*gmbs >*/
  1330.     blank_1.value[locy - 1] = blank_1.value[locy - 1] - gbs - (xnrm - xrev) * 
  1331.         gmbs;
  1332. /*<       locy=lynl+nodplc(loc+25) >*/
  1333.     locy = tabinf_1.lynl + nodplc[loc + 24];
  1334. /*<       value(locy)=value(locy)-gds-xrev*(gm+gmbs) >*/
  1335.     blank_1.value[locy - 1] = blank_1.value[locy - 1] - gds - xrev * (gm + 
  1336.         gmbs);
  1337. /*<       loc=nodplc(loc) >*/
  1338.     loc = nodplc[loc - 1];
  1339. /*<       go to 360 >*/
  1340.     goto L360;
  1341.  
  1342. /*  transmission lines */
  1343.  
  1344. /*<   400 loc=locate(17) >*/
  1345. L400:
  1346.     loc = cirdat_1.locate[16];
  1347. /*<   410 if ((loc.eq.0).or.(nodplc(loc+33).ne.0)) go to 1000 >*/
  1348. L410:
  1349.     if (loc == 0 || nodplc[loc + 32] != 0) {
  1350.     goto L1000;
  1351.     }
  1352. /*<       locv=nodplc(loc+1) >*/
  1353.     locv = nodplc[loc];
  1354. /*<       z0=value(locv+1) >*/
  1355.     z0 = blank_1.value[locv];
  1356. /*<       y0=1.0d0/z0 >*/
  1357.     y0 = 1. / z0;
  1358. /*<       td=value(locv+2) >*/
  1359.     td = blank_1.value[locv + 1];
  1360. /*<       arg=-omega*td >*/
  1361.     arg = -status_1.omega * td;
  1362. /*<       rval=dcos(arg) >*/
  1363.     rval = cos(arg);
  1364. /*<       xval=dsin(arg) >*/
  1365.     xval = sin(arg);
  1366. /*<       locy=lynl+nodplc(loc+10) >*/
  1367.     locy = tabinf_1.lynl + nodplc[loc + 9];
  1368. /*<       value(locy)=value(locy)+y0 >*/
  1369.     blank_1.value[locy - 1] += y0;
  1370. /*<       locy=lynl+nodplc(loc+11) >*/
  1371.     locy = tabinf_1.lynl + nodplc[loc + 10];
  1372. /*<       locyi=imynl+nodplc(loc+11) >*/
  1373.     locyi = tabinf_1.imynl + nodplc[loc + 10];
  1374. /*<       value(locy)=-y0 >*/
  1375.     blank_1.value[locy - 1] = -y0;
  1376. /*<       value(locyi)=0.0d0 >*/
  1377.     blank_1.value[locyi - 1] = 0.;
  1378. /*<       locy=lynl+nodplc(loc+12) >*/
  1379.     locy = tabinf_1.lynl + nodplc[loc + 11];
  1380. /*<       locyi=imynl+nodplc(loc+12) >*/
  1381.     locyi = tabinf_1.imynl + nodplc[loc + 11];
  1382. /*<       value(locy)=-1.0d0 >*/
  1383.     blank_1.value[locy - 1] = -1.;
  1384. /*<       value(locyi)=0.0d0 >*/
  1385.     blank_1.value[locyi - 1] = 0.;
  1386. /*<       locy=lynl+nodplc(loc+13) >*/
  1387.     locy = tabinf_1.lynl + nodplc[loc + 12];
  1388. /*<       value(locy)=value(locy)+y0 >*/
  1389.     blank_1.value[locy - 1] += y0;
  1390. /*<       locy=lynl+nodplc(loc+14) >*/
  1391.     locy = tabinf_1.lynl + nodplc[loc + 13];
  1392. /*<       locyi=imynl+nodplc(loc+14) >*/
  1393.     locyi = tabinf_1.imynl + nodplc[loc + 13];
  1394. /*<       value(locy)=-1.0d0 >*/
  1395.     blank_1.value[locy - 1] = -1.;
  1396. /*<       value(locyi)=0.0d0 >*/
  1397.     blank_1.value[locyi - 1] = 0.;
  1398. /*<       locy=lynl+nodplc(loc+15) >*/
  1399.     locy = tabinf_1.lynl + nodplc[loc + 14];
  1400. /*<       locyi=imynl+nodplc(loc+15) >*/
  1401.     locyi = tabinf_1.imynl + nodplc[loc + 14];
  1402. /*<       value(locy)=-y0 >*/
  1403.     blank_1.value[locy - 1] = -y0;
  1404. /*<       value(locyi)=0.0d0 >*/
  1405.     blank_1.value[locyi - 1] = 0.;
  1406. /*<       locy=lynl+nodplc(loc+16) >*/
  1407.     locy = tabinf_1.lynl + nodplc[loc + 15];
  1408. /*<       locyi=imynl+nodplc(loc+16) >*/
  1409.     locyi = tabinf_1.imynl + nodplc[loc + 15];
  1410. /*<       value(locy)=+y0 >*/
  1411.     blank_1.value[locy - 1] = y0;
  1412. /*<       value(locyi)=0.0d0 >*/
  1413.     blank_1.value[locyi - 1] = 0.;
  1414. /*<       locy=lynl+nodplc(loc+17) >*/
  1415.     locy = tabinf_1.lynl + nodplc[loc + 16];
  1416. /*<       locyi=imynl+nodplc(loc+17) >*/
  1417.     locyi = tabinf_1.imynl + nodplc[loc + 16];
  1418. /*<       value(locy)=+1.0d0 >*/
  1419.     blank_1.value[locy - 1] = 1.;
  1420. /*<       value(locyi)=0.0d0 >*/
  1421.     blank_1.value[locyi - 1] = 0.;
  1422. /*<       locy=lynl+nodplc(loc+18) >*/
  1423.     locy = tabinf_1.lynl + nodplc[loc + 17];
  1424. /*<       locyi=imynl+nodplc(loc+18) >*/
  1425.     locyi = tabinf_1.imynl + nodplc[loc + 17];
  1426. /*<       value(locy)=+y0 >*/
  1427.     blank_1.value[locy - 1] = y0;
  1428. /*<       value(locyi)=0.0d0 >*/
  1429.     blank_1.value[locyi - 1] = 0.;
  1430. /*<       locy=lynl+nodplc(loc+19) >*/
  1431.     locy = tabinf_1.lynl + nodplc[loc + 18];
  1432. /*<       locyi=imynl+nodplc(loc+19) >*/
  1433.     locyi = tabinf_1.imynl + nodplc[loc + 18];
  1434. /*<       value(locy)=+1.0d0 >*/
  1435.     blank_1.value[locy - 1] = 1.;
  1436. /*<       value(locyi)=0.0d0 >*/
  1437.     blank_1.value[locyi - 1] = 0.;
  1438. /*<       locy=lynl+nodplc(loc+20) >*/
  1439.     locy = tabinf_1.lynl + nodplc[loc + 19];
  1440. /*<       locyi=imynl+nodplc(loc+20) >*/
  1441.     locyi = tabinf_1.imynl + nodplc[loc + 19];
  1442. /*<       value(locy)=-1.0d0 >*/
  1443.     blank_1.value[locy - 1] = -1.;
  1444. /*<       value(locyi)=0.0d0 >*/
  1445.     blank_1.value[locyi - 1] = 0.;
  1446. /*<       locy=lynl+nodplc(loc+21) >*/
  1447.     locy = tabinf_1.lynl + nodplc[loc + 20];
  1448. /*<       locyi=imynl+nodplc(loc+21) >*/
  1449.     locyi = tabinf_1.imynl + nodplc[loc + 20];
  1450. /*<       value(locy)=-rval >*/
  1451.     blank_1.value[locy - 1] = -rval;
  1452. /*<       value(locyi)=-xval >*/
  1453.     blank_1.value[locyi - 1] = -xval;
  1454. /*<       locy=lynl+nodplc(loc+22) >*/
  1455.     locy = tabinf_1.lynl + nodplc[loc + 21];
  1456. /*<       locyi=imynl+nodplc(loc+22) >*/
  1457.     locyi = tabinf_1.imynl + nodplc[loc + 21];
  1458. /*<       value(locy)=+rval >*/
  1459.     blank_1.value[locy - 1] = rval;
  1460. /*<       value(locyi)=+xval >*/
  1461.     blank_1.value[locyi - 1] = xval;
  1462. /*<       locy=lynl+nodplc(loc+23) >*/
  1463.     locy = tabinf_1.lynl + nodplc[loc + 22];
  1464. /*<       locyi=imynl+nodplc(loc+23) >*/
  1465.     locyi = tabinf_1.imynl + nodplc[loc + 22];
  1466. /*<       value(locy)=+1.0d0 >*/
  1467.     blank_1.value[locy - 1] = 1.;
  1468. /*<       value(locyi)=0.0d0 >*/
  1469.     blank_1.value[locyi - 1] = 0.;
  1470. /*<       locy=lynl+nodplc(loc+24) >*/
  1471.     locy = tabinf_1.lynl + nodplc[loc + 23];
  1472. /*<       locyi=imynl+nodplc(loc+24) >*/
  1473.     locyi = tabinf_1.imynl + nodplc[loc + 23];
  1474. /*<       value(locy)=-rval*z0 >*/
  1475.     blank_1.value[locy - 1] = -rval * z0;
  1476. /*<       value(locyi)=-xval*z0 >*/
  1477.     blank_1.value[locyi - 1] = -xval * z0;
  1478. /*<       locy=lynl+nodplc(loc+25) >*/
  1479.     locy = tabinf_1.lynl + nodplc[loc + 24];
  1480. /*<       locyi=imynl+nodplc(loc+25) >*/
  1481.     locyi = tabinf_1.imynl + nodplc[loc + 24];
  1482. /*<       value(locy)=-rval >*/
  1483.     blank_1.value[locy - 1] = -rval;
  1484. /*<       value(locyi)=-xval >*/
  1485.     blank_1.value[locyi - 1] = -xval;
  1486. /*<       locy=lynl+nodplc(loc+26) >*/
  1487.     locy = tabinf_1.lynl + nodplc[loc + 25];
  1488. /*<       locyi=imynl+nodplc(loc+26) >*/
  1489.     locyi = tabinf_1.imynl + nodplc[loc + 25];
  1490. /*<       value(locy)=+rval >*/
  1491.     blank_1.value[locy - 1] = rval;
  1492. /*<       value(locyi)=+xval >*/
  1493.     blank_1.value[locyi - 1] = xval;
  1494. /*<       locy=lynl+nodplc(loc+27) >*/
  1495.     locy = tabinf_1.lynl + nodplc[loc + 26];
  1496. /*<       locyi=imynl+nodplc(loc+27) >*/
  1497.     locyi = tabinf_1.imynl + nodplc[loc + 26];
  1498. /*<       value(locy)=-1.0d0 >*/
  1499.     blank_1.value[locy - 1] = -1.;
  1500. /*<       value(locyi)=0.0d0 >*/
  1501.     blank_1.value[locyi - 1] = 0.;
  1502. /*<       locy=lynl+nodplc(loc+28) >*/
  1503.     locy = tabinf_1.lynl + nodplc[loc + 27];
  1504. /*<       locyi=imynl+nodplc(loc+28) >*/
  1505.     locyi = tabinf_1.imynl + nodplc[loc + 27];
  1506. /*<       value(locy)=+1.0d0 >*/
  1507.     blank_1.value[locy - 1] = 1.;
  1508. /*<       value(locyi)=0.0d0 >*/
  1509.     blank_1.value[locyi - 1] = 0.;
  1510. /*<       locy=lynl+nodplc(loc+29) >*/
  1511.     locy = tabinf_1.lynl + nodplc[loc + 28];
  1512. /*<       locyi=imynl+nodplc(loc+29) >*/
  1513.     locyi = tabinf_1.imynl + nodplc[loc + 28];
  1514. /*<       value(locy)=-rval*z0 >*/
  1515.     blank_1.value[locy - 1] = -rval * z0;
  1516. /*<       value(locyi)=-xval*z0 >*/
  1517.     blank_1.value[locyi - 1] = -xval * z0;
  1518. /*<       locy=lynl+nodplc(loc+31) >*/
  1519.     locy = tabinf_1.lynl + nodplc[loc + 30];
  1520. /*<       locyi=imynl+nodplc(loc+31) >*/
  1521.     locyi = tabinf_1.imynl + nodplc[loc + 30];
  1522. /*<       value(locy)=-y0 >*/
  1523.     blank_1.value[locy - 1] = -y0;
  1524. /*<       value(locyi)=0.0d0 >*/
  1525.     blank_1.value[locyi - 1] = 0.;
  1526. /*<       locy=lynl+nodplc(loc+32) >*/
  1527.     locy = tabinf_1.lynl + nodplc[loc + 31];
  1528. /*<       locyi=imynl+nodplc(loc+32) >*/
  1529.     locyi = tabinf_1.imynl + nodplc[loc + 31];
  1530. /*<       value(locy)=-y0 >*/
  1531.     blank_1.value[locy - 1] = -y0;
  1532. /*<       value(locyi)=0.0d0 >*/
  1533.     blank_1.value[locyi - 1] = 0.;
  1534. /*<       loc=nodplc(loc) >*/
  1535.     loc = nodplc[loc - 1];
  1536. /*<       go to 410 >*/
  1537.     goto L410;
  1538.  
  1539. /*  finished */
  1540.  
  1541. /*<  1000 return >*/
  1542. L1000:
  1543.     return 0;
  1544. /*<       end >*/
  1545. } /* acload_ */
  1546.  
  1547. #undef cvalue
  1548. #undef nodplc
  1549.  
  1550.  
  1551.